Apex Code |
@IsTest(SeeAllData = true)
public with sharing class LightningSelfRegisterControllerTest {
/* Verifies that IsValidPassword method with various password combinations. */
@IsTest
static void testIsValidPassword() {
System.assert(LightningSelfRegisterController.isValidPassword('password?@12334', 'password?@12334') == true);
System.assert(LightningSelfRegisterController.isValidPassword('password?@12334', 'dummyPassword') == false);
System.assert(LightningSelfRegisterController.isValidPassword('password?@12334', null) == false);
System.assert(LightningSelfRegisterController.isValidPassword(null, 'fakePwd') == false);
}
@IsTest
static void testSiteAsContainerEnabled() {
System.assertNotEquals(null, LightningSelfRegisterController.siteAsContainerEnabled('https://portaleu1-developer-edition.eu11.force.com'));
}
/* Verifies the selfRegistration method flow with various invalid inputs */
@IsTest
static void testSelfRegistration() {
Map < String, String > paramsMap = initializeParams();
System.assertNotEquals(null, paramsMap);
System.assertEquals(Label.Site.lastname_is_required, LightningSelfRegisterController.selfRegister(paramsMap.get('firstName'), '', paramsMap.get('email'), paramsMap.get('password'), paramsMap.get('confirmPasswordCorrect'), null, paramsMap.get('regConfirmUrl'), null, paramsMap.get('startUrl'), true));
System.assertEquals(Label.Site.email_is_required, LightningSelfRegisterController.selfRegister(paramsMap.get('firstName'), paramsMap.get('lastName'), '', paramsMap.get('password'), paramsMap.get('confirmPasswordCorrect'), null, paramsMap.get('regConfirmUrl'), null, paramsMap.get('startUrl'), true));
System.assertEquals(Label.Site.email_is_required, LightningSelfRegisterController.selfRegister(null, paramsMap.get('lastName'), '', null, paramsMap.get('confirmPasswordCorrect'), null, paramsMap.get('regConfirmUrl'), null, paramsMap.get('startUrl'), true));
System.assertEquals(Label.site.passwords_dont_match, LightningSelfRegisterController.selfRegister(paramsMap.get('firstName'), paramsMap.get('lastName'), paramsMap.get('email'), paramsMap.get('password'), paramsMap.get('confirmPasswordWrong'), null, paramsMap.get('regConfirmUrl'), null, paramsMap.get('startUrl'), true));
System.assertNotEquals(null, LightningSelfRegisterController.selfRegister(paramsMap.get('firstName'), paramsMap.get('lastName'), '', paramsMap.get('password'), paramsMap.get('confirmPasswordWrong'), null, paramsMap.get('regConfirmUrl'), null, paramsMap.get('startUrl'), false));
}
/* Verifies the selfRegistration flow for valid inputs */
@IsTest
static void testSelfRegisterWithProperCredentials() {
Map < String, String > paramsMap = initializeParams();
System.assertEquals(null, LightningSelfRegisterController.selfRegister(paramsMap.get('firstName'), paramsMap.get('lastName'), paramsMap.get('email'), paramsMap.get('password'), paramsMap.get('confirmPasswordCorrect'), null, paramsMap.get('regConfirmUrl'), null, paramsMap.get('startUrl'), true));
}
/* Verifies SelfRegistration flow with an accounId that is created within the test */
@IsTest
static void testSelfRegisterWithCreatedAccount() {
Account acc = new Account(name = 'test acc');
insert acc;
List < Account > accounts = [SELECT Id FROM Account LIMIT 1];
System.assert(!accounts.isEmpty(), 'There must be at least one account in this environment!');
String accountId = accounts[0].Id;
Map < String, String > paramsMap = initializeParams();
System.assertEquals(null, LightningSelfRegisterController.selfRegister(paramsMap.get('firstName'), paramsMap.get('lastName'), paramsMap.get('email'), paramsMap.get('password'), paramsMap.get('confirmPasswordCorrect'), accountId, paramsMap.get('regConfirmUrl'), null, paramsMap.get('startUrl'), false));
}
@IsTest
static void testGetNullExtraFields() {
System.assertEquals(new List < Map < String, Object >> (), LightningSelfRegisterController.getExtraFields(null));
}
@IsTest
static void testGetNonEmptyExtraFields() {
System.assertEquals(new List < Map < String, Object >> (), LightningSelfRegisterController.getExtraFields('field1'));
}
/* Verifies validation of extraFields within the Self Registration flow */
@IsTest
static void testGetExtraFieldsInSelfRegistration() {
List < Map < String, Object >> fieldlist = new List < Map < String, Object >> ();
Map < String, String > paramsMap = initializeParams();
Map < String, Object > fieldMap = new Map < String, Object > ();
fieldMap.put('description', 'new field');
fieldMap.put('fieldPath', 'dummyPath');
fieldlist.add(fieldMap);
String extraFields = JSON.serialize(fieldlist);
System.assertNotEquals(null, LightningSelfRegisterController.selfRegister(paramsMap.get('firstName'), paramsMap.get('lastName'), paramsMap.get('email'), paramsMap.get('password'), paramsMap.get('confirmPasswordCorrect'), null, paramsMap.get('regConfirmUrl'), extraFields, paramsMap.get('startUrl'), true));
}
@IsTest
static void LightningSelfRegisterControllerInstantiation() {
LightningSelfRegisterController controller = new LightningSelfRegisterController();
System.assertNotEquals(controller, null);
}
/* Helper method to initialize the parameters required for SelfRegistration. */
private static Map < String, String > initializeParams() {
Map < String, String > paramsMap = new Map < String, String > ();
String firstName = 'test';
String lastName = 'User';
String email = 'testUser@salesforce.com';
String password = 'testuser123';
String confirmPasswordCorrect = 'testuser123';
String confirmPasswordWrong = 'wrongpassword';
String accountId = 'testuser123';
String regConfirmUrl = 'http://registration-confirm.com';
String startUrl = 'http://my.company.salesforce.com';
paramsMap.put('firstName', firstName);
paramsMap.put('lastName', lastName);
paramsMap.put('email', email);
paramsMap.put('password', password);
paramsMap.put('confirmPasswordCorrect', confirmPasswordCorrect);
paramsMap.put('confirmPasswordWrong', confirmPasswordWrong);
paramsMap.put('accountId', accountId);
paramsMap.put('regConfirmUrl', regConfirmUrl);
paramsMap.put('startUrl', startUrl);
return paramsMap;
}
}
|